package version;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * 封装
 * Mysql封装工具类:链接对应数据库
 * Mysql与Oracle具备 url username password
 * 所有数据库公用的定义为属性
 * 2.getParam(String 路径)获取参数方法 链接成功数据库
 * 2.1外置文件【url 账号 密码】 统一配置文件中【形式：键值对】
 * xxx.properties
 */
public class Mysql {
    //定义数据库基本属性:私有化静态属性  类直接调取属性
    private static String url;
    private static String username;
    private static String password;
    //2.定义方法:链接成功数据库  文件路径
    public static void getParam(String fileName) throws IOException {
    //2.1读取db_mysql.properties文件键和值
    //Mysql.class 表示当前Mysql类的class对象
    //getClassLoader()  获取当前类的加载器【加载器：根据路径执行配置文件】
    //GetResourceAsStream() 通过类的加载器 找到对应的文件 配合读取
    //mysql书籍区域  找到对应
    Properties p=new Properties();
    //低级流  搬运 传入fileName
        InputStream fis=
                Mysql.class.getClassLoader().getResourceAsStream(fileName);
    //2.15 Properties类提供load()方法 必须传入流--低级流--搬运数据
        p.load(fis);
        //2.2从db_mysql.properties读取的键值对信息
        //Properties类提供方法getProperties("健")通过键找值
        //复制给当前Mysql的数据
        url=p.getProperty("url");
        username=p.getProperty("username");
        password=p.getProperty("password");
        //.2.3 打桩
        System.out.println("数据库基本信息"+url+username+password);

    }
    public static void main(String[] args) throws IOException, SQLException {
        Mysql.getParam("db_mysql.properties");
        //参考Mysql工具类编写一个Oracle工具类   (完成 ✔)
        //工具类链接成功不同的数据库【外置文件基本信息配置不同】
        //增加一条操作---mi库--book 查询
        //JDBC Connection、Statement
        // 创建数据库链接操作 DriverManager.getConnection 穿三个值
        Connection con = DriverManager.getConnection(url, username, password);
        //执行sql 创建成功数据库
        String st="insert into book values(6,'蔡徐坤','鸡你太美',170,'园2018',25,'是')";
        Statement stt=con.createStatement();
        //增删改 executeUpdate() 返回几条
        int rows=stt.executeUpdate(st);
        System.out.println(rows);
    }
}


























